#ifndef FPLAYER_FFMPEGHEADER_H
#define FPLAYER_FFMPEGHEADER_H

#ifdef __cplusplus
extern "C" {
#endif

#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
#include "libavutil/imgutils.h"
#include "libavutil/avutil.h"
#include "libavutil/time.h"
#include "libavutil/opt.h"

/**
 * MediaRawType格式转换为FFMpeg的图像格式
 * @param rawType MediaRawType格式
 * @return FFMpeg图像格式
 */
AVPixelFormat FFMpeg_RawType2PixelFormat(int32_t rawType);

/**
 * FFMpeg的图像格式转换为MediaRawType格式
 * @param pixelFormat FFMpeg图像格式
 * @return MediaRawType格式
 */
int32_t FFMpeg_PixelFormat2RawType(AVPixelFormat pixelFormat);

/**
 * MediaRawType格式转换为FFMpeg的音频格式
 * @param rawType  MediaRawType格式
 * @return FFMpeg的音频格式
 */
AVSampleFormat FFMpeg_RawType2SampleFormat(int32_t rawType);

/**
 * FFMpeg的音频格式转换为MediaRawType格式
 * @param sampleFormat FFMpeg音频格式
 * @return MediaRawType格式
 */
int32_t FFMpeg_SampleFormat2RawType(AVSampleFormat sampleFormat);

/**
 * FFMpeg的音视频类型转换MediaType
 * @param mediaType FFMpeg的音视频类型
 * @return MediaType
 */
int32_t FFMpeg_AVMediaTypeConvert(AVMediaType mediaType);

/**
 * MediaType转换FFMpeg的音视频类型
 * @param mediaType MediaType
 * @return FFMpeg的音视频类型
 */
AVMediaType FFMpeg_MediaTypeConvert(int32_t mediaType);

#ifdef __cplusplus
}
#endif


#endif //FPLAYER_FFMPEGHEADER_H
